SUPPORT / SAMPLES & SAS NOTES
 

Support

Problem Note 65922: Trying to read a Google BigQuery table that contains a variable defined as an array might result in a panic error and SAS® shutting down

DetailsHotfixAboutRate It

Trying to read a Google BigQuery table that contains a variable that is defined as an array of records might result in an error and cause SAS to shut down. This issue occurs when one of the variables contained in the record is also defined as an array of records. The error that is seen varies depending on how you are running SAS. Here are some examples:

  • If you are running SAS® 9.4M6 (TS1M6) through Display Manager, command line, or batch, the error written to the UNIX shell might look similar to one of the following:
10? panic: runtime error: index out of range

goroutine 17 [running, locked to thread]:
main.(*stmt).readRecordinArray(0xc00038e870, 0xc0000b3ec0, 0x3, 0x4,
0xc0004fe310, 0xc000194e00, 0xf, 0x10)
        /home/sdsci/access-bigquery/bigquery/read.go:87 +0xe04
main.(*stmt).readArray(0xc00038e870, 0xc00035c720, 0x1, 0x1, 0xc0004fe310,
0xc000194e00, 0xf, 0x10)
        /home/sdsci/access-bigquery/bigquery/read.go:153 +0x2c2
main.(*stmt).readRecordinArray(0xc00038e870, 0xc000030d00, 0xf, 0x10,
0xc0004fe310, 0xc000194e00, 0xf, 0x10)
        /home/sdsci/access-bigquery/bigquery/read.go:85 +0xc23
main.(*stmt).readArray(0xc00038e870, 0xc00035c730, 0x1, 0x1, 0xc0004fe310,
0xc000194e00, 0xf, 0x10)
        /home/sdsci/access-bigquery/bigquery/read.go:153 +0x2c2
main.gbqgoFetch(0x5, 0x7efe9805f908, 0x7efe545cf120, 0x1000, 0x30)
        /home/sdsci/access-bigquery/bigquery/read.go:249 +0x909
main._cgoexpwrap_abb6517b0c72_gbqgoFetch(0x5, 0x7efe9805f908, 0x7efe545cf120,
0x1000, 0xc)
        _cgo_gotypes.go:398 +0x4b

10? panic: interface conversion: bigquery.Value is bool, not string

goroutine 17 [running, locked to thread]:
main.(*stmt).readRecordinArray(0xc000387590, 0xc0003df5c0, 0x3, 0x4,
0xc00017d500, 0xc000030b00, 0x16, 0x20)
        /home/sdsci/access-bigquery/bigquery/read.go:93 +0xdfd
main.(*stmt).readArray(0xc000387590, 0xc000260e00, 0x5, 0x8, 0xc00017d500,
0xc000030b00, 0x16, 0x20)
        /home/sdsci/access-bigquery/bigquery/read.go:153 +0x2c2
main.(*stmt).readRecordinArray(0xc000387590, 0xc000518e00, 0x16, 0x20,
0xc00017d500, 0xc000030b00, 0x16, 0x20)
        /home/sdsci/access-bigquery/bigquery/read.go:85 +0xc23
main.(*stmt).readArray(0xc000387590, 0xc0003f1620, 0x1, 0x1, 0xc00017d500,
0xc000030b00, 0x16, 0x20)
        /home/sdsci/access-bigquery/bigquery/read.go:153 +0x2c2
main.gbqgoFetch(0x8, 0x7f96b804fd48, 0x7f9690fcb880, 0x1000, 0x30)
        /home/sdsci/access-bigquery/bigquery/read.go:249 +0x909
main._cgoexpwrap_abb6517b0c72_gbqgoFetch(0x8, 0x7f96b804fd48, 0x7f9690fcb880,
0x1000, 0x7f9600000003)
        _cgo_gotypes.go:398 +0x4b
Aborted
  • If you are using SAS® Enterprise Guide® to run SAS 9.4M6 (TS1M6), the above errors might not be seen. Instead, you might receive a pop-up window with an error similar to the following:
Connection is lost or abandoned.
  • If you are using SAS® Studio to access SAS® Viya® (19w34) or later and are using a libref to access the BigQuery table, you might not receive any error that indicates that the code did not execute. The code that was submitted is not shown in the SAS Studio log.
  • If you are using SAS Studio to access SAS Viya (19w34) or later and are using a CASLIB to access the Google BigQuery table, you might see an error similar to the following:
ERROR: Connection failed. Server returned: Session reconnect failed: Could not find the specified session.

Click the Hot Fix tab in this note for a link to instructions about accessing and applying the software update.



Operating System and Release Information

Product FamilyProductSystemProduct ReleaseSAS Release
ReportedFixed*ReportedFixed*
SAS SystemSAS/ACCESS Interface to Google BigQuery (on SAS Viya)Linux for x64V.03.042020.0.4ViyaViya
SAS SystemSAS/ACCESS Interface to Google BigQueryLinux for x649.419.429.4 TS1M69.4 TS1M7
* For software releases that are not yet generally available, the Fixed Release is the software release in which the problem is planned to be fixed.